/***************************************************************************
 创建者：华磊
 开始时间：         : 2020.12.19
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   坐标系指令属性编辑视窗
*                                                                         *
 ***************************************************************************/
#ifndef COORDINATEINSTRUCTIONVIEW_H
#define COORDINATEINSTRUCTIONVIEW_H

#include "coordinateinstructionview_global.h"
#include <QWidget>
#include <QTranslator>

class ProgramView;

namespace Ui {
class CoordinateInstructionView;
}

/**
 * @brief The EM_COORDINATE_SETTING enum　坐标系设置类型
 */
enum EM_COORDINATE_SETTING
{
    EM_COORDINATE_SETTING_TOOL = 1,
    EM_COORDINATE_SETTING_FRAME = 2,
    EM_COORDINATE_SETTING_TOOL_NUM = 3,
    EM_COORDINATE_SETTING_FRAME_NUM = 4
};

/**
 * @brief The CoordinateInstructionView class　坐标系指令属性编辑视窗类
 */
class COORDINATEINSTRUCTIONVIEWSHARED_EXPORT CoordinateInstructionView : public QWidget
{
    Q_OBJECT

public:
    CoordinateInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief updateView　更新设置数据到界面控件
     */
    void updateView();
    /**
     * @brief getInput　获取界面输入数据
     */
    void getInput();

    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

private:
    QTranslator translator;

public:
    ProgramView *programView;

    /**
     * @brief instruction　坐标系指令
     */
    QString instruction;

    /**
     * @brief selectType　选择坐标设置类型
     *
     * １:工具坐标系设定   2:用户坐标系设定   3:工具坐标系选择   4:用户坐标系选择
     */
    int selectType;

    /**
     * @brief setToolIndex　设定的工具坐标系号码
     */
    int setToolIndex;
    /**
     * @brief setFrameIndex　设定的用户坐标系号码
     */
    int setFrameIndex;

    /**
     * @brief toolPRValue　工具坐标系设定PR值
     */
    int toolPRValue;
    /**
     * @brief framePRValue　用户坐标系设定PR值
     */
    int framePRValue;
    /**
     * @brief selectToolValue　工具坐标系选择值
     */
    QString selectToolValue;
    /**
     * @brief selectFrameValue　用户坐标系选择值
     */
    QString selectFrameValue;

    /**
     * @brief note　指令注释
     */
    QString note;

signals:
    /**
     * @brief selectSetToolInstruction　选择工具坐标系设定指令
     */
    void selectSetToolInstruction();
    /**
     * @brief selectSetFrameInstruction　选择用户坐标系设定指令
     */
    void selectSetFrameInstruction();
    /**
     * @brief selectToolNumInstruction　选择工具坐标系选择指令
     */
    void selectToolNumInstruction();
    /**
     * @brief selectFrameNumInstruction　选择用户坐标系选择指令
     */
    void selectFrameNumInstruction();

    /**
     * @brief clearNote　清除指令注释
     */
    void clearNote();

    /**
     * @brief finishEditInstruction　完成指令编辑
     */
    void finishEditInstruction();
    /**
     * @brief saveInstruction　保存编辑的指令
     * @param instruction　坐标系指令
     */
    void saveInstruction(QString instruction);

private slots:
    /**
     * @brief on_UTOOL_radioButton_clicked　选择工具坐标系设定指令槽函数
     */
    void on_UTOOL_radioButton_clicked();

    /**
     * @brief on_UFRAME_radioButton_clicked　选择用户坐标系设定指令槽函数
     */
    void on_UFRAME_radioButton_clicked();

    /**
     * @brief on_UTOOL_NUM_radioButton_clicked　选择工具坐标系选择指令槽函数
     */
   void on_UTOOL_NUM_radioButton_clicked();

    /**
     * @brief on_UFRAME_NUM_radioButton_clicked　选择用户坐标系选择指令槽函数
     */
    void on_UFRAME_NUM_radioButton_clicked();
    /**
     * @brief on_clearNote_Btn_clicked　清除指令注释槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked　上一页槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_save_Btn_clicked　保存指令槽函数
     */
    void on_save_Btn_clicked();

private:
    Ui::CoordinateInstructionView *ui;
};

#endif // COORDINATEINSTRUCTIONVIEW_H
